// 给一个整数n，1=< a,b,c <= n的平方和三元组的数目
// 平方和三元组：指的是满足 a平方 + b平方 = c平方的整数三元组 （a,b,c）

// 思路：在[1, n]区间枚举整数三元组的a，b，c中的a和b，然后判断a平方+b平方是否小于等于n，并且是完全平方数
// 用一个变量来统计平方和三元组数目，最终返回该数目
// 为了防止浮点数造成的误差，并且两个相邻的完全平方正数之间的距离一定大于1，我们可以用 根号（a平方 + b平方 + 1）来代理根号（a平方 + b平方 ）

function countTriples(n) {
    let cnt = 0
    for (let a = 1; a <= n; a++) {
        for (let b = 1; b <= n; b++) {
            let c = parseInt(Math.sqrt(a * a + b * b + 1))
            if (c <= n && a * a + b * b === c * c) {
                cnt += 1
            }
        }        
    }
    return cnt
}

console.log(countTriples(10))